<?php
namespace ImiApp\Module\Member\Model\Base;

use Imi\Model\Model;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Table;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\Entity;

/**
 * 机构课程 基类
 * @Entity
 * @Table(name="sc_jigou_class", id={"id"})
 * @DDL("CREATE TABLE `sc_jigou_class` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `class_name` varchar(255) DEFAULT NULL COMMENT '课程名',
  `class_type_id` int(5) DEFAULT NULL COMMENT '课程类型',
  `description` varchar(255) DEFAULT NULL COMMENT '课程简介',
  `content` text COMMENT '课程详细介绍',
  `image` varchar(255) DEFAULT NULL COMMENT '课程封面',
  `banner_images` varchar(9999) DEFAULT NULL COMMENT '课程轮播图',
  `class_num` int(5) DEFAULT NULL COMMENT '课程节数',
  `sales` int(10) DEFAULT '0' COMMENT '销售数量',
  `admin_id` int(10) DEFAULT NULL,
  `price` decimal(10,2) DEFAULT '0.00' COMMENT '单价(一节课)',
  `createtime` int(10) DEFAULT NULL,
  `siteswitch` tinyint(1) DEFAULT '1' COMMENT '状态:0=关闭,1=正常',
  `total_price` decimal(10,2) DEFAULT '0.00' COMMENT '套餐价格',
  `weigh` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='机构课程'")
 * @property int $id 
 * @property string $className 课程名
 * @property int $classTypeId 课程类型
 * @property string $description 课程简介
 * @property string $content 课程详细介绍
 * @property string $image 课程封面
 * @property string $bannerImages 课程轮播图
 * @property int $classNum 课程节数
 * @property int $sales 销售数量
 * @property int $adminId 
 * @property float $price 单价(一节课)
 * @property int $createtime 
 * @property int $siteswitch 状态:0=关闭,1=正常
 * @property float $totalPrice 套餐价格
 * @property int $weigh 
 */
abstract class ScJigouClassBase extends Model
{
    /**
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true)
     * @var int
     */
    protected $id;

    /**
     * 获取 id
     *
     * @return int
     */ 
    public function getId()
    {
        return $this->id;
    }

    /**
     * 赋值 id
     * @param int $id id
     * @return static
     */ 
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * 课程名
     * class_name
     * @Column(name="class_name", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $className;

    /**
     * 获取 className - 课程名
     *
     * @return string
     */ 
    public function getClassName()
    {
        return $this->className;
    }

    /**
     * 赋值 className - 课程名
     * @param string $className class_name
     * @return static
     */ 
    public function setClassName($className)
    {
        $this->className = $className;
        return $this;
    }

    /**
     * 课程类型
     * class_type_id
     * @Column(name="class_type_id", type="int", length=5, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $classTypeId;

    /**
     * 获取 classTypeId - 课程类型
     *
     * @return int
     */ 
    public function getClassTypeId()
    {
        return $this->classTypeId;
    }

    /**
     * 赋值 classTypeId - 课程类型
     * @param int $classTypeId class_type_id
     * @return static
     */ 
    public function setClassTypeId($classTypeId)
    {
        $this->classTypeId = $classTypeId;
        return $this;
    }

    /**
     * 课程简介
     * description
     * @Column(name="description", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $description;

    /**
     * 获取 description - 课程简介
     *
     * @return string
     */ 
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * 赋值 description - 课程简介
     * @param string $description description
     * @return static
     */ 
    public function setDescription($description)
    {
        $this->description = $description;
        return $this;
    }

    /**
     * 课程详细介绍
     * content
     * @Column(name="content", type="text", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $content;

    /**
     * 获取 content - 课程详细介绍
     *
     * @return string
     */ 
    public function getContent()
    {
        return $this->content;
    }

    /**
     * 赋值 content - 课程详细介绍
     * @param string $content content
     * @return static
     */ 
    public function setContent($content)
    {
        $this->content = $content;
        return $this;
    }

    /**
     * 课程封面
     * image
     * @Column(name="image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $image;

    /**
     * 获取 image - 课程封面
     *
     * @return string
     */ 
    public function getImage()
    {
        return $this->image;
    }

    /**
     * 赋值 image - 课程封面
     * @param string $image image
     * @return static
     */ 
    public function setImage($image)
    {
        $this->image = $image;
        return $this;
    }

    /**
     * 课程轮播图
     * banner_images
     * @Column(name="banner_images", type="varchar", length=9999, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $bannerImages;

    /**
     * 获取 bannerImages - 课程轮播图
     *
     * @return string
     */ 
    public function getBannerImages()
    {
        return $this->bannerImages;
    }

    /**
     * 赋值 bannerImages - 课程轮播图
     * @param string $bannerImages banner_images
     * @return static
     */ 
    public function setBannerImages($bannerImages)
    {
        $this->bannerImages = $bannerImages;
        return $this;
    }

    /**
     * 课程节数
     * class_num
     * @Column(name="class_num", type="int", length=5, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $classNum;

    /**
     * 获取 classNum - 课程节数
     *
     * @return int
     */ 
    public function getClassNum()
    {
        return $this->classNum;
    }

    /**
     * 赋值 classNum - 课程节数
     * @param int $classNum class_num
     * @return static
     */ 
    public function setClassNum($classNum)
    {
        $this->classNum = $classNum;
        return $this;
    }

    /**
     * 销售数量
     * sales
     * @Column(name="sales", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $sales;

    /**
     * 获取 sales - 销售数量
     *
     * @return int
     */ 
    public function getSales()
    {
        return $this->sales;
    }

    /**
     * 赋值 sales - 销售数量
     * @param int $sales sales
     * @return static
     */ 
    public function setSales($sales)
    {
        $this->sales = $sales;
        return $this;
    }

    /**
     * admin_id
     * @Column(name="admin_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $adminId;

    /**
     * 获取 adminId
     *
     * @return int
     */ 
    public function getAdminId()
    {
        return $this->adminId;
    }

    /**
     * 赋值 adminId
     * @param int $adminId admin_id
     * @return static
     */ 
    public function setAdminId($adminId)
    {
        $this->adminId = $adminId;
        return $this;
    }

    /**
     * 单价(一节课)
     * price
     * @Column(name="price", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var float
     */
    protected $price;

    /**
     * 获取 price - 单价(一节课)
     *
     * @return float
     */ 
    public function getPrice()
    {
        return $this->price;
    }

    /**
     * 赋值 price - 单价(一节课)
     * @param float $price price
     * @return static
     */ 
    public function setPrice($price)
    {
        $this->price = $price;
        return $this;
    }

    /**
     * createtime
     * @Column(name="createtime", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $createtime;

    /**
     * 获取 createtime
     *
     * @return int
     */ 
    public function getCreatetime()
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime
     * @param int $createtime createtime
     * @return static
     */ 
    public function setCreatetime($createtime)
    {
        $this->createtime = $createtime;
        return $this;
    }

    /**
     * 状态:0=关闭,1=正常
     * siteswitch
     * @Column(name="siteswitch", type="tinyint", length=1, accuracy=0, nullable=true, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $siteswitch;

    /**
     * 获取 siteswitch - 状态:0=关闭,1=正常
     *
     * @return int
     */ 
    public function getSiteswitch()
    {
        return $this->siteswitch;
    }

    /**
     * 赋值 siteswitch - 状态:0=关闭,1=正常
     * @param int $siteswitch siteswitch
     * @return static
     */ 
    public function setSiteswitch($siteswitch)
    {
        $this->siteswitch = $siteswitch;
        return $this;
    }

    /**
     * 套餐价格
     * total_price
     * @Column(name="total_price", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var float
     */
    protected $totalPrice;

    /**
     * 获取 totalPrice - 套餐价格
     *
     * @return float
     */ 
    public function getTotalPrice()
    {
        return $this->totalPrice;
    }

    /**
     * 赋值 totalPrice - 套餐价格
     * @param float $totalPrice total_price
     * @return static
     */ 
    public function setTotalPrice($totalPrice)
    {
        $this->totalPrice = $totalPrice;
        return $this;
    }

    /**
     * weigh
     * @Column(name="weigh", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $weigh;

    /**
     * 获取 weigh
     *
     * @return int
     */ 
    public function getWeigh()
    {
        return $this->weigh;
    }

    /**
     * 赋值 weigh
     * @param int $weigh weigh
     * @return static
     */ 
    public function setWeigh($weigh)
    {
        $this->weigh = $weigh;
        return $this;
    }

}
